# 常规型（传统型）得分题目
Cy = [7, 19, 29, 39, 41, 51, 57]
Cn = [5, 18, 40]
CResult = [
    'C',
    '具有顺从、谨慎、保守、自控、服从、规律、坚毅、实际稳重、有效率、但缺乏想象力等特征，表现为<br>1、喜欢传统性质的的职业或环境，避免艺术性质的职业或情境，会以传统的能力解决工作或其他方面的问题<br>2、喜欢顺从、规律、有文书与数字能力，并重视商业与经济上的成就。',
    '典型职业:出纳、会计、秘书'
]

# 现实型得分题目
Ry = [2, 13, 22, 36, 43]
Rn = [14, 23, 44, 47, 48]
RResult = [
    'R',
    '具有顺从、坦率、谦虚、自然、坚毅、实际、有礼、害羞、稳健、节俭的特征，表现为<br>1、喜爱实用性的职业或情境，以从事所喜好的活动，避免社会性的职业或情境<br>2、用具体实际的能力解决工作及其他方面的问题，较缺乏人际关系方面的能力。<br>3、重视具体的事物，如金钱，权力、地位等。',
    '典型职业:工人、农民、土木工程师'
]

# 研究型得分题目
Iy = [6, 8, 20, 30, 31, 42]
In = [21, 55, 56, 58]
IResult = [
    'I',
    '具有分析、谨慎、批评、好奇、独立、聪明、内向、条理、谦逊、精确、理发、保守的特征，表现为<br>1、喜爱研究性的职业或情境，避免企业性的职业或情境<br>2、用研究的能力解决工作及其他方面的问题，即自觉、好学、自信，重视科学，但缺乏领导方面的才能。',
    '典型职业:科研人员、数学、生物方面的专家']

# 管理型（企业型）得分题目
Ey = [11, 24, 28, 35, 38, 46, 60]
En = [3, 16, 25]
EResult = [
    'E',
    '具有冒险、野心、独断、冲动、乐观、自信、追求享受、精力充沛、善于社交、获取注意、知名度等特征，表现为<br>1、喜欢企业性质的的职业或环境，避免研究性质的职业或情境，会以企业方面的能力解决工作或其他方面的问题能力<br>2、有冲动、自信、善社交、知名度高、有领导与语言能力，缺乏科学能力，但重视政治与经济上的成就。',
    '典型职业:推销员、政治家、企业家'
]

# 社会型得分题目
Sy = [26, 37, 52, 59]
Sn = [1, 12, 15, 27, 45, 53]
SResult = [
    'S',
    '具有合作、友善、慷慨、助人、仁慈、负责、圆滑、善社交、善解人意、说服他人、理想主义等特征，表现为<br>1、喜爱社会型的职业或情境，避免实用性的职业或情境，并以社交方面的能力解决工作及其他方面的问题，但缺乏机械能力与科学能力<br>2、喜欢帮助别人、了解别人，有教导别人的能力，且重视社会与伦理的活动与问题。',
    '典型职业:教师、牧师、辅导人员'
]

# 艺术型得分题目
Ay = [4, 9, 10, 17, 33, 34, 49, 50, 54]
An = [32]
AResult = [
    'A',
    '具有复杂、想象、冲动、独立、直觉、无秩序、情绪化、理想化、不顺从、有创意、富有表情、不重实际的特征，表现为<br>1、喜爱艺术性的职业或情境，避免传统性的职业或情境<br>2、富有表达能力和直觉、独立、具创意、不顺从（包括表演、写作、语言），并重视审美的领域',
    '典型职业:诗人、艺术家'
]
resultData = {
    '常规型': CResult,
    '现实型': RResult,
    '研究型': IResult,
    '管理型': EResult,
    '社会型': SResult,
    '艺术型': AResult
}
result = {
    'type': '',
    'describe': '',
    'occupation': ''
}


def HLD(data):
    list_data = data.split(',')

    dict_data = {i: list_data.count(i) for i in set(list_data)}
    count = {
        'C': dict_data['常规型'],
        'R': dict_data['现实型'],
        'I': dict_data['研究型'],
        'E': dict_data['管理型'],
        'S': dict_data['社会型'],
        'A': dict_data['艺术型'],
    }
    dict_data.pop('无')

    d_order = sorted(dict_data.items(), key=lambda x: x[1], reverse=True)
    TopThree = [i[0] for i in d_order[:3]]

    Data = [resultData[i] for i in TopThree]
    result['type'] = Data[0][0] + Data[1][0] + Data[2][0]
    result['describe'] = '<br/>'.join(Data[0]) + '<br/><br/>' + '<br/>'.join(Data[1])
    result['occupation'] = '<br/>'.join(Data[2])
    result['count'] = count

    return result
